Linux(四):什么是Bash、什么是shell?

您所在的位置:网站首页 volcanic ash cloud是什么意思 Linux(四):什么是Bash、什么是shell?

Linux(四):什么是Bash、什么是shell?

2024-07-04 13:29| 来源: 网络整理| 查看: 265

目录

1、Bash和Shell关系

2、什么是Shell?

3、什么是Bash

3.1、bash常见命令

3.2、bash 变量

1、Bash和Shell关系

shell是运行在终端中的文本互动程序。

bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。

Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。

其他的shell还有:sh、bash、ksh、rsh、csh等。

Ubuntu系统常用的是bash,Bio-linux系统是基于ubuntu定制的,但是却使用了zsh。

sh的全名是Bourne Shell。名字中的玻恩就是这个Shell的作者。

而bash的全名是Bourne Again Shell。最开始在Unix系统中流行的是sh,而bash作为sh的改进版本,提供了更加丰富的功能。一般来说,都推荐使用bash作为默认的Shell。

2、什么是Shell?

        shell是用户和Linux(或者更准确的说,是用户和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。

        shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。此外,shell也能被系统中其他有效的Linux 实用程序和应用程序(utilities and application programs)所调用。         不论何时你键入一个命令,它都被Linux shell所解释。一些命令,比如打印当前工作目录命令(pwd),是包含在Linux bash内部的(就象DOS的内部命令)。其他命令,比如拷贝命令(cp)和移动命令(rm),是存在于文件系统中某个目录下的单独的程序。而对用户来说,你不知道(或者可能不关心)一个命令是建立在shell内部还是一个单独的程序。

        shell 首先检查命令是否是内部命令,不是的话再检查是否是一个应用程序,这里的应用程序可以是Linux本身的实用程序,比如ls rm,然后shell试着在搜索路径($PATH)里寻找这些应用程序。搜索路径是一个能找到可执行程序的目录列表。如果你键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。而如果命令被成功的找到的话,shell的内部命令或应用程序将被分解为系统调用并传给Linux内核。

3、什么是Bash

Bourne Again shell (bash), 正如它的名字所暗示的,是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。

为什么要用 bash 来代替 sh 呢?Bourne shell 最大的缺点在于它处理用户的输入方面。在 Bourne shell 里键入命令会很麻烦,尤其当你键入很多相似的命令时。而 bash 准备了几种特性使命令的输入变得更容易。 

3.1、bash常见命令 alias: 设置bash别名。 bg: 使一个被挂起的进程在后台继续执行。 cd: 改变当前工作目录。 exit: 终止shell。 export: 使变量的值对当前shell的所有子进程都可见 。 fc: 用来编辑历史命令列表里的命令。 fg: 使一个被挂起的进程在前台继续执行。 help: 显示bash内部命令的帮助信息。 kill: 终止某个进程。 pwd: 显示当前工作目录。 unalias: 删除已定义的别名。

bash 还有许多命令,但这些是最常用的,想了解更详细的情况,请参考bash的手册–在提示符下键入 man bash。

3.2、bash 变量 这里是几个最有用的bash变量,包括变量名和简单描述: EDITOR, FCEDIT: bsah fc 命令的缺省编辑器。 HISTFILE: 用于贮存历史命令的文件。 HISTSIZE: 历史命令列表的大小。 HOME: 当前用户的用户目录。 OLDPWD: 前一个工作目录。 PATH: bash寻找可执行文件的搜索路径。 PS1: 命令行的一级提示符。 PS2: 命令行的二级提示符。 PWD: 当前工作目录。 SECONDS: 当前shell开始后所流逝的秒

参考:Bash编程入门-1:Shell与Bash - 知乎



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3